Expand description
Substrate genesis config builder
For FRAME based runtimes, this runtime interface provides means to interact with
RuntimeGenesisConfig
. Runtime provides a default RuntimeGenesisConfig
structure in a form of
the JSON blob.
For non-FRAME runtimes this interface is intended to build genesis state of the runtime basing
on some input arbitrary bytes array. This documentation uses term RuntimeGenesisConfig
, which
for non-FRAME runtimes may be understood as the runtime-side entity representing initial runtime
configuration. The representation of the preset is an arbitrary Vec<u8>
and does not
necessarily have to represent a JSON blob.
The runtime may provide a number of partial predefined RuntimeGenesisConfig
configurations in
the form of patches which shall be applied on top of the default RuntimeGenesisConfig
. The
patch is a JSON blob, which essentially comprises the list of key-value pairs that are to be
customized in the default runtime genesis config. These predefined configurations are referred
to as presets.
This allows the runtime to provide a number of predefined configs (e.g. for different testnets or development) without neccessity to leak the runtime types outside the itself (e.g. node or chain-spec related tools).
This Runtime API allows to interact with RuntimeGenesisConfig
, in particular:
- provide the list of available preset names,
- provide a number of named presets of
RuntimeGenesisConfig
, - provide a JSON represention of the default
RuntimeGenesisConfig
(by simply serializing the defaultRuntimeGenesisConfig
struct into JSON format), - deserialize the full
RuntimeGenesisConfig
from given JSON blob and put the resultingRuntimeGenesisConfig
structure into the state storage creating the initial runtime’s state. Allows to build customized genesis. This operation internally callsGenesisBuild::build
function for all runtime pallets.
Providing externalities with an empty storage and putting RuntimeGenesisConfig
into storage
(by calling build_state
) allows to construct the raw storage of RuntimeGenesisConfig
which is the foundation for genesis block.
Constants§
- The default
development
preset used to communicate with the runtime viaGenesisBuilder
interface. - The default
local_testnet
preset used to communicate with the runtime viaGenesisBuilder
interface.
Traits§
- API to interact with RuntimeGenesisConfig for the runtime
Type Aliases§
- The type representing preset ID.
- The result type alias, used in build methods.
Err
contains formatted error message.